##题目：自行车赛
##Mike,Ellie,Rohan,Fatma 四个人参加自行车比赛，分别获得1-4名，
##他们每个人骑不同颜色的自行车(红，紫，蓝，绿)。基于以下线索，谁获得了第二名?
##1、Ellie骑紫色的车, Rohan没有骑绿色的车。 
##2、Mike和Ellie不是第一，也不是最后。 (说明Mike和Ellie分别占了第2和第3名)
##3、骑蓝色车的人领先Fatma。(说明Fatma是第四名,Rohan是第一名，且蓝色车为前三名的，即Fatma不为蓝色车)
##4、骑绿色车的人领先骑紫色车的人。（Ellie为第二名时，绿车可为第一名，Ellie第三名时，绿车可为1(Rohan)、2(Mike)名）

#初始化[姓名,自行车颜色,排名]
#[紫,红,蓝,绿]四种颜色分别对应[1,2,3,4],排名为1~4
rank=[['Mike',0,0],['Ellie',1,0],['Rohan',0,1],['Fatma',0,4]]
#各排名对应的自行车颜色
bike_color=[]

#由条件三确定Mike和Ellie是2或3名
#Mike和Ellie的排名情况共有两种可能
for i in range(2,4):
    #如果Mike第二名，则Ellie第三名;如果Mike第三名，则Ellie第二名
    rank[0][2]=i
    rank[1][2]=5-i
    #对剩下三个不知自行车颜色的人进行遍历
    #Ellie（2或3）,Rohan（1）,Fatma（4）分别可能对应红,蓝,绿(2,3,4)三种颜色的车
    #j1 j2 j3分别代表Mike,Rohan,Fatma三人的车颜色
    for j1 in range(2,5):
        for j2 in range(2,5):
            #两个人用的自行车不能同色 且 Rohan不为绿色车(4)
            if(j1==j2 or j2==4):
                continue
            for j3 in range(2,5):
                #两个人用的自行车不能同色
                #蓝色车领先Fatma，说明Fatma不为蓝色车
                if(j1==j3 or j2==j3 or j3==3):
                    continue
                #如果Ellie第二名但第一名Rohan的车不为绿车，则不符合条件4
                if(rank[1][2]==2 and j2!=1):
                    continue
                #如果Ellie第三名，而绿车(4)属于第四名的则不符合条件
                if(rank[1][2]==3 and j3==4):
                    continue
                #如果满足以上所有条件，则会得到一个结果
                rank[0][1]=j1 #Mike的车色
                rank[2][1]=j2 #Rohan的车色
                rank[3][1]=j3 #Fatma的车色
                print(rank)
                for t in rank:
                    print('姓名:'+t[0]+',自行车颜色：',end='')
                    if(t[1]==1):
                        print('紫色',end=',')
                    elif(t[1]==2):
                        print('红色',end=',')
                    elif(t[1]==3):
                        print('蓝色',end=',')
                    elif(t[1]==4):
                        print('绿色',end=',')
                    print('排名：'+str(t[2]))
                
                
            
        
    
